// Kony

#pragma once

#include "CoreMinimal.h"
#include "Actor/BaseProjectile.h"
#include "BaseBlastBall.generated.h"

/**
 * 继承自投射物演员类的 爆炸球类 这个类是一个可以自动向四周发射技能的类
 */
UCLASS()
class GASC_HUANLING_API ABaseBlastBall : public ABaseProjectile
{
	GENERATED_BODY()
public:
	//启动技能的时间线 ，用于控制技能投射物 发射后返回角色
	UFUNCTION(BlueprintImplementableEvent)
	void StartOutgoingTimeline();
	//爆炸伤害效果参数
	UPROPERTY(BlueprintReadWrite)
	FDamageEffectParams ExplosionDamageParams;
	//球体返回目标
	UPROPERTY(BlueprintReadOnly)
	TObjectPtr<AActor> ReturnToTarget;
	
protected:
	//重写启动函数
	virtual void BeginPlay() override;
	//重写处理碰撞函数，父类是碰撞就爆炸，这个类是穿透敌人 回来时爆炸
	virtual void OnSphereOverlap(UPrimitiveComponent* OverlappedComponent,AActor* OtherActor, UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult& SweepResult) override;
	//重写碰撞命中函数
	virtual void OnHit() override;

};
